home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / intuisup.lha / Intuisup / Library / M2AmigaModula / intuisupD.def < prev    next >
Text File  |  1992-08-14  |  20KB  |  478 lines

  1. (* ------------------------------------------------------------------------
  2.   :Program.       intuisup
  3.   :Contents.      Interface to Torsten Jürgeleits intuisup.library
  4.   :Author.        Johann Semsrott
  5.   :Address.       Märkerweg 50 d
  6.   :Address.       D-2000 Hamburg 61 (Germany)
  7.   :History.       v4.5 14-aug-92 (translated from C)
  8.   :Copyright.     1991 by Torsten Jürgeleit
  9.   :Language.      Modula-2
  10.   :Translator.    M2Amiga V4.0d
  11.   :Remark.        Thanks to Torsten for his great library
  12.   :Bugs.          ?
  13. ------------------------------------------------------------------------ *)
  14.  
  15. DEFINITION MODULE intuisupD {"intuisup.library",4};
  16. (*$ Implementation:=FALSE *)
  17.  
  18. FROM Arts           IMPORT  BreakPoint,Assert;
  19. FROM SYSTEM         IMPORT  ADDRESS,CAST;
  20. FROM IntuitionD     IMPORT  WindowPtr,NewWindowPtr,ScreenPtr,Image,ImagePtr,
  21.                             IDCMPFlagSet,IDCMPFlags,GadgetPtr,Gadget,
  22.                             MenuPtr,MenuItemPtr,IntuiMessagePtr;
  23. FROM GraphicsD      IMPORT  TextFontPtr,TextAttr,TextAttrPtr;
  24. FROM ExecD          IMPORT  MinList,MinNode,MsgPortPtr;
  25. FROM DiskFontD      IMPORT  AvailFontHeader,AvailFontHeaderPtr;
  26. FROM DosD           IMPORT  FileHandlePtr;
  27.  
  28. CONST
  29.   isupname = "intuisup.library";
  30.   iversion = 4;        (* Current library version *)
  31.  
  32.   dtText  =1; dtInt =2; dtCard   =3; dtHex =4; dtBin=5;
  33.   
  34.   Box1Out =1; Box1In=2; Box2Out  =3; Box2In=4;
  35.   
  36.   mdTitle =1; mdItem=2; mdSubitem=3;
  37.  
  38.   tfstNormal=0;     tfstEOF=1;
  39.  
  40.   errNoFileData  =-1;   errLineTooLong=-2;  
  41.   errNoCommentEnd=-3; errReadFailed =-4;
  42.   
  43.   Button  =1;   (* button gadget *)
  44.   Check =2;     (* checkbox gadget *)
  45.   MX    =3;     (* mutual exclude gadget *)
  46.   String  =4;   (* string input gadget *)
  47.   Integer =5;   (* integer input gadget *)
  48.   Slider  =6;   (* slider gadget *)
  49.   Scroller=7;   (* scroller gadget *)
  50.   Cycle =8;     (* cycle gadget *)
  51.   Count =9;     (* count gadget *)
  52.   Listview=10;  (* list view gadget *)
  53.   Palette =11;  (* palette gadget *)
  54.  
  55.   button  =IDCMPFlagSet{gadgetUp,vanillaKey};
  56.   check   =IDCMPFlagSet{gadgetDown,vanillaKey};
  57.   mx      =IDCMPFlagSet{gadgetDown,vanillaKey};
  58.   string  =IDCMPFlagSet{gadgetUp,vanillaKey};
  59.   integer =IDCMPFlagSet{gadgetUp,vanillaKey};
  60.   slider  =IDCMPFlagSet{gadgetUp,mouseMove,vanillaKey};
  61.   scroller=IDCMPFlagSet{gadgetDown,gadgetUp,mouseMove,intuiTicks,vanillaKey};
  62.   cycle   =IDCMPFlagSet{gadgetUp,vanillaKey};
  63.   count   =IDCMPFlagSet{gadgetDown,gadgetUp,mouseMove,vanillaKey};
  64.   listview=IDCMPFlagSet{gadgetDown,gadgetUp,mouseMove,intuiTicks,vanillaKey};
  65.   palette =IDCMPFlagSet{gadgetUp,vanillaKey};
  66.   all     =IDCMPFlagSet{gadgetDown,gadgetUp,mouseMove,intuiTicks,vanillaKey};
  67.   
  68.   ISUP    =CAST(IDCMPFlagSet,49535550H);
  69.   
  70.   curValue=80000000H;
  71.   
  72. (************** S T R U C T U R E S *************************************)
  73.  
  74. TYPE
  75.   StrPtr=POINTER TO ARRAY [0..255] OF CHAR;
  76.     
  77.   RenderInfoFlags=(
  78.     innerWindow,(* use upper left corner of inner window as location (0,0) *)
  79.     backFill,   (* fill window back ground with different color *)
  80.     availFonts, (* scan available fonts and use this list for  
  81.                    ask_font/ open_font *)
  82.     f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15); 
  83.   
  84.   RenderInfoFlagSet=SET OF RenderInfoFlags;
  85.     
  86.   RWindowFlags=(
  87.     centerWindow,   (* center window on screen *)
  88.     renderPens,     (* use render pens for detail and backfill pen *)
  89.     centerMouse,    (* center window over current position of mouse pointer*)
  90.     w3,w4,w5,w6,w7,w8,w9,w10,w11,w12,w13,w14,w15);
  91.     
  92.   RWindowFlagSet=SET OF RWindowFlags;
  93.  
  94.   ClrWindowFlags=(
  95.     customDrawMode, (* don't change draw mode *)
  96.     customColor,    (* don't change background color *)
  97.     normalColor,    (* use normal background color *)
  98.     useRaster,      (* use standard raster for window background *)
  99.     absolutePos,    (* don't add window border offset to given upper left
  100.                        position *)
  101.     text1Color,     (* use text color 1 *)
  102.     text2Color,     (* use text color 2 *)
  103.     cw7,cw8,cw9,cw10,cw11,cw12,cw13,cw14,cw15);
  104.  
  105.   ClrWindowFlagSet=SET OF ClrWindowFlags;
  106.     
  107.   RenderInfoPtr=POINTER TO RenderInfo;
  108.     
  109.   RenderInfo=RECORD
  110.     ID                                      :LONGINT;
  111.     ScreenWidth,ScreenHeight                :INTEGER;
  112.     ScreenDepth,WindowBorderTop,
  113.     WindowBorderLeft,WindowBorderRight,
  114.     WindowBorderBottom,HighlightPen,ShadowPen,
  115.     TextPen1,TextPen2,BackPen               :SHORTCARD;
  116.     flags                                   :RenderInfoFlagSet;
  117.     imageDataSize                           :LONGCARD;
  118.     imageData                               :ADDRESS;
  119.     AvailFontsHeader                        :AvailFontHeaderPtr;
  120.     textFont                                :TextFontPtr;
  121.     textAttr                                :TextAttr;
  122.     image                                   :ARRAY [0..10] OF Image;
  123.   END;                           
  124.     
  125.   TextDataFlags=(
  126.     Bold,Italic,Underlined,
  127.     AbsolutePos,    (* absolute text pos given - don't add border offsets *)
  128.     Center,         (* center text with in window width *)
  129.     PlaceLeft,      (* place text left of given left edge *)
  130.     Color2,         (* use 2nd text render pen *)
  131.     Complement,     (* use complement of front and back pen *)
  132.     Backfill,       (* use draw mode JAM2 to fill text background with 
  133.                        ri_BackPen *)
  134.     NoPrint,        (* don't print text - only calc width *)
  135.     NumIdentifier,  (* convert number with normal (assembler style) leading
  136.                        identifier `$' or `%' *)
  137.     NumC,           (* use C style identifier `0x' for hex numbers *)
  138.     NumLeading,     (* convert number including leading zeroes *)
  139.     NumUpper,       (* use upper case characters for hex number *)
  140.     td14,td15);
  141.     
  142.   TextDataFlagSet=SET OF TextDataFlags;
  143.     
  144.   TextDataPtr=POINTER TO TextData;
  145.     
  146.   TextData=RECORD
  147.     type                :INTEGER;
  148.     flags               :TextDataFlagSet;
  149.     leftEdge,topEdge    :INTEGER;
  150.     text                :ADDRESS;
  151.     textAttr            :TextAttrPtr;
  152.   END;
  153.  
  154.   ConvertFlags=(
  155.     identifier,     (* convert number with normal (assmebler style)
  156.                        leading identifier `$' or `%' *)
  157.     cStyle,         (* use C style identifier `0x' for hex numbers *)
  158.     leadingZeros,   (* convert number includeing leading zeroes *)
  159.     upperCase,      (* use upper case characters for hex number *)
  160.     cf4,cf5,cf6,cf7,cf8,cf9,cf10,cf11,cf12,cf13,cf14,cf15);
  161.  
  162.   ConvertFlagSet=SET OF ConvertFlags;
  163.  
  164.   BorderDataPtr=POINTER TO BorderData;
  165.     
  166.   BorderData=RECORD
  167.     bdType,bdLeftEdge,bdTopEdge,bdWidth,bdHeight:INTEGER;
  168.   END;
  169.     
  170.   GadgetDataFlags=(
  171.     disabled,       (* gadget disabled (ghosted) - default enabled *)
  172.     noBorder,       (* no gadget border - default with border *)
  173.     highComp,       (* highliting by complement - default by select border *)
  174.     vertOrient,     (* vertical orientation - default horizontal *)
  175.     hotKey,         (* hot key given - default none *)
  176.     noText,         (* no text output, but scan gadget text for hotkey *)
  177.     textLeft,       (* place text left of gadget *)
  178.     textRight,      (* place text right of gadget *)
  179.     textAbove,      (* place text above of gadget *)
  180.     textBelow,      (* place text below of gadget *)
  181.     gdcolor2,       (* use 2nd text render pen for gadget text *)
  182.     buttonToggle,   (* button gadgets: toggle button - default no toggle *)
  183.     buttonImage,    (* button gadgets: render image - default no image *)
  184.     autoActivate,   (* input gadgets: acivate after GADGETUP next or previous
  185.                        input gadget *)
  186.     unsignDec,      (* string gadgets: input default no pointer to string 
  187.                        but an unsigned decimal number *)
  188.     signDec,        (* string gadgets: input default no pointer to string 
  189.                        but an signed decimal number *)
  190.     hex,            (* string gadgets: input default no pointer to string 
  191.                        but an hex number *)
  192.     bin,            (* string gadgets: input default no pointer to string 
  193.                        but an binary number *)
  194.     noArrows,       (* scroller gadget: no arrows - default with arrows *)
  195.     countSignDec,   (* count gadget: signed dec - default unsigned dec *)
  196.     readOnly,       (* list view gadget: read only - default selection 
  197.                        enabled *)
  198.     showSelected,   (* list view gadget: show last selected entry - 
  199.                        default no *)
  200.     noIndicator,    (* palette gadget: no current color indicator - 
  201.                        default with indicator *)
  202.     indicatorTop,   (* palette gadget: place indicator at top - 
  203.                        default at left *)
  204.     movePointer,    (* move mouse pointer to center of this gadget *)
  205.     noClear,        (* don't clear area occupied by this gadget before 
  206.                        drawing *)
  207.     sliderImage,    (* kludge to define image for knob of proportional 
  208.                        gadget in gd_TextAttr (if text then default 
  209.                        TextAttr used) *)
  210.     listViewColor,  (* list view gadget: if first char of an entry text 
  211.                        equals  <Ctrl A> ($01) then this char will be skipped
  212.                        and the rest of this entry text will be printed in a
  213.                        different color *)
  214.     inputCenter,    (* input gadgets: center input string within gadget *)
  215.     inputRight,     (* input gadgets: right justify input string within 
  216.                        gadget *)
  217.     gd30,gd31);
  218.     
  219.   GadgetDataFlagSet=SET OF GadgetDataFlags;
  220.                  
  221.   GadgetDataPtr=POINTER TO GadgetData;
  222.     
  223.   GadgetData=RECORD
  224.     gdType                                  :LONGINT;
  225.     gdFlags                                 :GadgetDataFlagSet;
  226.     gdLeftEdge,gdTopEdge,gdWidth,gdHeight   :INTEGER;
  227.     gdText                                  :ADDRESS;
  228.     gdTextAttr                              :TextAttrPtr;
  229.     CASE :INTEGER OF
  230.       (* standard data struct *)
  231.       |1:gdData1,gdData2,gdData3:LONGINT;
  232.       (* for button gadgets *)
  233.       |2:gdButtonSelected       :LONGINT;   (* selection state for toggle
  234.                         buttons - ZERO = unselected, non ZERO = selected *)
  235.          gdButtonNormalRender   :ImagePtr;  (* normal render image *)
  236.          gdButtonSelectRender   :ImagePtr;  (* select render image *)
  237.       (* for check gadgets *)
  238.       |3:gdCheckSelected        :LONGINT;   (* selection state - 
  239.                                     ZERO = unselected, non ZERO = selected *)
  240.          gdCheckPad1,gdCheckPad2:LONGINT;
  241.       (* for mutual exclude gadgets *)
  242.       |4:gdMXSpacing    :LONGINT;   (* pixel spacing between MX gadgets *)
  243.          gdMXActiveEntry:LONGINT;   (* num of active entry from text array *)
  244.          gdMXTextArray  :ADDRESS;   (* ptr to MX text ptr array *)
  245.       (* for string and integer gadgets *)
  246.       |5:gdInputLen             :LONGINT;   (* len of input buffer *)
  247.          gdInputActivateNext    :INTEGER;   (* num of next string/num 
  248.                                                gadget to activate *)
  249.          gdInputActivatePrev    :INTEGER;   (* num of previous string/num 
  250.                                                gadget to activate *)
  251.          gdInputDefault         :ADDRESS;   
  252.                             (* string: default text [syntax: "text"] *)
  253.                             (* integer: default number [syntax: (VOID #)num] *)
  254.       (* for slider gadgets *)
  255.       |6:gdSliderMin            :LONGINT;   (* min level *)
  256.          gdSliderMax            :LONGINT;   (* max level *)
  257.          gdSliderLevel          :LONGINT;   (* current slider level *)
  258.       (* for scroller gadgets *)
  259.       |7:gdScrollerVisible      :LONGINT;   (* visible entries *)
  260.          gdScrollerTotal        :LONGINT;   (* total entries *)
  261.          gdScrollerTop          :LONGINT;   (* current top entry *)
  262.       (* for cycle gadget *)
  263.       |8:gdCyclePad             :LONGINT;
  264.          gdCycleActive          :LONGINT;   (* num of current cycle text ptr
  265.                                                array entry *)
  266.          gdCycleTextArray       :ADDRESS;   (* ptr to cycle text ptr array *)
  267.       (* for count gadget *)
  268.       |9:gdCountMin             :LONGINT;   (* min value *)
  269.          gdCountMax             :LONGINT;   (* max value *)
  270.          gdCountValue           :LONGINT;   (* current count value *)
  271.       (* for list view gadget *)
  272.       |10:gdListViewSpacing     :LONGINT;   (* pixel spacing between 
  273.                                                list view entries *)
  274.           gdListViewTop         :LONGINT;   (* current top entry *)
  275.           gdListViewList        :ADDRESS;   (* current list ptr *)
  276.       (* for palette gadget *)
  277.       |11:gdPaletteDepth        :LONGINT;   (* num of bitplanes for palette *)
  278.           gdPaletteColorOffset  :LONGINT;   (* first color of palette *)
  279.           gdPaletteActiveColor  :LONGINT;   (* selected color *)
  280.     END;
  281.   END;
  282.     
  283.   ExtendedGadgetFlags=
  284.     (eghotkey,egrenderBorder,egRenderImage,egnormalImageCopy,
  285.      egselectImageCopy,egcloseFont,egmovePointer,
  286.      eg7,eg8,eg9,eg10,eg11,eg12,eg13,eg14,eg15);
  287.  
  288.   ExtendedGadgetFlagSet=SET OF ExtendedGadgetFlags;
  289.  
  290.   GadgetListPtr=POINTER TO GadgetList;
  291.  
  292.   ExtendedGadgetPtr=POINTER TO ExtendedGadget;
  293.  
  294.   ExtendedGadget=RECORD
  295.     egGadget        :Gadget;
  296.     egBorderWidth   :INTEGER;   (* needed by editor *)
  297.     egBorderHeight  :INTEGER;   (* needed by editor *)
  298.     egType          :SHORTINT;  (* internal gadget type *)
  299.     egFlags         :SHORTINT;  (* special flags, e.g render object type *)
  300.     egDataEntry     :INTEGER;   (* ordinal number of entry in gl_Data array *)
  301.     egGadgetList    :GadgetListPtr;
  302.     egTextLeftEdge  :INTEGER;
  303.     egTextTopEdge   :INTEGER;
  304.     egText          :StrPtr;
  305.     egTextAttr      :TextAttrPtr;
  306.     egTextFont      :TextFontPtr;
  307.     egHotkey        :INTEGER;   (* ASCII value of gadget hot key *)
  308.     egHotkeyPos     :INTEGER;   (* pos of as hot key marked 
  309.                                    (underscore) char in gadget text *)
  310.     egRender        :ADDRESS;   (* ptr to image or border -  
  311.                                    determined by eg_Flags *)
  312.     egNextGadget    :ExtendedGadgetPtr;
  313.   END;
  314.     
  315.   GadgetListFlags=(
  316.     displayed,                  (* gadget list currently displayed *)
  317.     gl1,gl2,gl3,gl4,gl5,gl6,gl7);
  318.     
  319.   GadgetListFlagSet=SET OF GadgetListFlags;
  320.  
  321.   RequesterListPtr=POINTER TO RequesterList; 
  322.  
  323.   GadgetList=RECORD
  324.     glMinNode           :MinNode;   (* node to insert GadgetList into 
  325.                                        VisibleGadgetLists list *)
  326.     glRenderInfo        :RenderInfoPtr;
  327.     glWindow            :WindowPtr;
  328.     glData              :GadgetDataPtr;
  329.     glID                :LONGINT;
  330.     glDataEntries       :INTEGER;
  331.     glFlags             :GadgetListFlagSet;
  332.     glAutoRepeatDelay   :SHORTCARD;   (* delay counter for start of 
  333.                                     auto repeat for active arrow gadget *)
  334.     glGadgetBuffer      :ADDRESS;
  335.     glGadgetBufferSize  :LONGINT;
  336.     glImageBuffer       :ADDRESS;
  337.     glImageBufferSize   :LONGINT;
  338.     glLanguageTextArray :ADDRESS;
  339.     glRequesterList     :RequesterListPtr;
  340.     glActiveGadget      :ExtendedGadgetPtr;
  341.     glGadgets           :ExtendedGadgetPtr;   
  342.                 (* array with gl_DataEntries ptr to extended gadgets *)
  343.   END;
  344.  
  345.   AutoRequesterFlags=(
  346.     rbackFill,rrenderPens,rtextCenter,rtextColor2,
  347.     rhotkey,rbeep,rmovePointerPos,rmovePointerNeg,
  348.     rdrawRaster,        (* draw raster around text area *)
  349.     rcenterMouse,       (* center last gadget of auto requester over
  350.                            current position of mouse pointer *)
  351.     r10,r11,r12,r13,r14,r15);
  352.     
  353.   AutoRequesterFlagSet=SET OF AutoRequesterFlags;
  354.  
  355.  
  356.   RequesterDataFlags=(
  357.     rdbackFill,rdrenderPens,rdinnerWindow,rdavailFonts,
  358.     rdcenter,           (* center requester on window's screen *)
  359.     rddragGadget,rddepthGadget,
  360.     rddrawRaster,       (* draw raster between FIRST BORDER and window
  361.                            border - FIRST BORDER will not be used further *)
  362.     rdcenterWindow,     (* center requester on window *)
  363.     rdcenterMouse,      (* center requester over current position of
  364.                            mouse pointer *)
  365.     rd10,rd11,rd12,rd13,rd14,rd15,
  366.     rd16,rd17,rd18,rd19,rd20,rd21,rd22,rd23,rd24,rd25,
  367.     rd26,rd27,rd28,rd29,rd30,rd31);
  368.  
  369.   RequesterDataFlagSet=SET OF RequesterDataFlags;
  370.  
  371.   RequesterList = RECORD
  372.     rlRenderInfo        :RenderInfoPtr;
  373.     rlWindow            :WindowPtr;     (* window requester displayed on *)
  374.     rlReqWindow         :WindowPtr;     (* window of requester *)
  375.     rlGadgetList        :GadgetListPtr; (* requester gadgets *)
  376.     rlMenu              :MenuPtr;       (* menu of window requester
  377.                                            displayed on *)
  378.     rlVisibleGadgetLists:MinList;       (* list for removed visible 
  379.                                            gadget lists *)
  380.     rlID                :LONGINT;       (* id = 'ISUP' *)
  381.   END;
  382.  
  383.   RequesterDataPtr=POINTER TO RequesterData;
  384.  
  385.   RequesterData = RECORD
  386.     rdLeftEdge,rdTopEdge,
  387.     rdWidth,rdHeight    :INTEGER;
  388.     rdFlags             :RequesterDataFlagSet;
  389.     rdTitle             :ADDRESS;
  390.     rdTexts             :TextDataPtr;
  391.     rdBorders           :BorderDataPtr;
  392.     rdGadgets           :GadgetDataPtr;
  393.   END;
  394.  
  395.   MenuDataFlags=(
  396.     Disabled,   (* disable menu or menu item *)
  397.     attribute,  (* attribute menu item *)
  398.     selected,   (* selected attribute menu item *)
  399.     emptyLine,  (* insert empty line before this item *)
  400.     highNone,   (* no highliting *)
  401.     highBox,    (* highliting with box, otherwise with complement *)
  402.     mdColor2,   (* alternate color for item text *)
  403.     md7,md8,md9,md10,md11,md12,md13,md14,md15);
  404.     
  405.   MenuDataFlagSet=SET OF MenuDataFlags;
  406.  
  407.   MenuListFlags=(
  408.     attached,   (* menu list is currently attached to a window *)
  409.     ml1,ml2,ml3,ml4,ml5,ml6,ml7,ml8,ml9,ml10,ml11,ml12,ml13,ml14,ml15);
  410.     
  411.   MenuListFlagSet=SET OF MenuListFlags;
  412.                     
  413.   MenuData=RECORD
  414.     mdType          :INTEGER;
  415.     mdFlags         :MenuDataFlagSet;
  416.     mdText          :StrPtr;
  417.     mdCommandKey    :ADDRESS;
  418.     mdMutualExclude :LONGCARD;
  419.   END;
  420.     
  421.   MenuDataPtr=POINTER TO MenuData;
  422.  
  423.   MenuList=RECORD 
  424.     mlRenderInfo            :RenderInfoPtr;
  425.     mlWindow                :WindowPtr;
  426.     mlTextAttr              :TextAttrPtr;
  427.     mlTextFont              :TextFontPtr;
  428.     mlData                  :MenuDataPtr;
  429.     mlID                    :LONGINT;
  430.     mlFlags                 :MenuListFlagSet;
  431.     mlTextPen1,mlTextPen2   :SHORTCARD;
  432.     mlLanguageTextArray     :ADDRESS;
  433.     mlBuffer                :ADDRESS;
  434.     mlBufferSize            :LONGCARD;
  435.   END;
  436.     
  437.   MenuListPtr=POINTER TO MenuList;
  438.     
  439.   TextFileFlags =(
  440.     trimLine,           (* strip leading and trailing white space *)
  441.     skipComments,       (* skip C style comments *)
  442.     skipEmptyLines,     (* skip empty lines *)
  443.     lineContinuation,   (* continue line with last character
  444.                            '\' in next line *)
  445.     tf4,tf5,tf6,tf7,tf8,tf9,tf10,tf11,tf12,tf13,tf14,tf15);
  446.     
  447.   TextFileFlagSet=SET OF TextFileFlags;
  448.  
  449.   FileDataPtr=POINTER TO FileData;
  450.     
  451.   FileData = RECORD 
  452.     fdLine              :ADDRESS;
  453.     fdLineLen,fdLineNum :CARDINAL;
  454.   END;
  455.  
  456.   PointerDataPtr=POINTER TO PointerData; 
  457.     
  458.   PointerData = RECORD
  459.     pdWidth,pdHeight    :SHORTCARD;
  460.     pdXOffset,pdYOffset :SHORTINT;
  461.     pdData              :ADDRESS;
  462.   END;
  463.  
  464.   PointerListPtr=POINTER TO PointerList;
  465.     
  466.   PointerList = RECORD
  467.     plID                :LONGINT;       (* id = 'ISUP' *)
  468.     plWidth,plHeight    :SHORTCARD;
  469.     plXOffset,plYOffset :SHORTINT;
  470.     plData              :ADDRESS;
  471.     plBuffer            :ADDRESS;   (* if non NULL then chipmem buffer
  472.                                        was allocated *)
  473.     plBufferSize        :LONGINT;
  474.     plNext              :PointerListPtr;
  475. END;
  476.  
  477. END intuisupD.
  478.